package com.dieusoft.box.trade.vo;

import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.dieusoft.box.info.entity.JzxDefaultCostDetails;
import com.dieusoft.box.trade.entity.CostInfo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @Description: 集装箱贸易表
 * @Author: jeecg-boot
 * @Date: 2020-10-22
 * @Version: V1.0
 */
@Data
public class JzxTradePage {

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键")
    private String id;

    /**
     * 创建日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private Date createTime;
    /**
     * 更新人
     */
    @ApiModelProperty(value = "更新人")
    private String updateBy;
    /**
     * 更新日期
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private Date updateTime;
    /**
     * 所属部门
     */
    @ApiModelProperty(value = "所属部门")
    private String sysOrgCode;
    /**
     * 业务类型
     * “国际箱贸业务” “国内箱贸业务” “租箱业务”
     * 1、2、3
     */
    @Excel(name = "业务类型", width = 15)
    private String type;
    /**
     * 箱东代码
     */
    @Excel(name = "箱东代码", width = 15)
    @ApiModelProperty(value = "箱东代码")
    private String containerCode;
    /**
     * 箱东名称
     */
    @Excel(name = "箱号", width = 15)
    @ApiModelProperty(value = "箱号")
    private String containerNumber;
    /**
     * 箱型
     */
    @Excel(name = "箱型", width = 15)
    private String containerType;

    @Excel(name = "新箱/旧箱", width = 15, dicCode = "box_condition")
    private String conditionType;
    /**
     * 公司名称
     */
    @Excel(name = "公司名称", width = 15)
    private String companyName;
    /**
     * 客户业务编号
     */
    @Excel(name = "客户业务编号", width = 20)
    @TableField(updateStrategy = FieldStrategy.IGNORED)
    private String customerBusinessNumber;

    /**
     * 创建人
     */
    @Excel(name = "操作员", width = 20)
    private String createBy;

    @Excel(name = "起运港", width = 15)
    private String polDesc;

    @Excel(name = "目的港", width = 15)
    private String podDesc;
    /**
     * 起运港
     */
    private String pol;
    /**
     * 目的港
     */
    private String pod;
    /**
     * POL进堆场时间
     */
    @Excel(name = "起运港进堆场时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date polInTime;

    @Excel(name = "船公司", width = 30)
    private String shipCompany;
    /**
     * ETD
     */
    @Excel(name = "ETD", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date etd;
    /**
     * ETA
     */
    @Excel(name = "ETA", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date eta;


    @Excel(name = "目的港提货时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date podDeliveryTime;
    /**
     * POD堆场信息
     */
    @Excel(name = "目的港堆场信息", width = 60, dicCode = "id", dictTable = "yard_info", dicText = "yard_info_col")
    @ApiModelProperty(value = "POD堆场信息")
    private String podYardInfo;
    /**
     * POD还空箱时间
     */
    @Excel(name = "目的港还空箱时间", width = 20, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date podReturnboxTime;
    /**
     * POD离场时间
     */
    @Excel(name = "目的港离场时间", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date podLeaveTime;

    @Excel(name = "目的港堆存天数", width = 15)
    private BigDecimal podStackingDays;

    //堆场总费用描述
    @Excel(name = "目的港堆场总费用 ", width = 15)
    private String podYardTotalCostDesc;
    /**
     * POD堆场总费用
     */
    private java.math.BigDecimal podYardTotalCost;

    /**
     * 目的港堆场总费用币种
     */
    private String podYardTotalCostCurrency;
    /**
     * 买箱费
     */
    @Excel(name = "买箱费", width = 15)
    private BigDecimal buyBoxCost;
    /**
     * 用箱费
     */
    @Excel(name = "用箱费", width = 15)
    private BigDecimal useBoxCost;

    @Excel(name = "意向卖箱费", width = 15)
    private BigDecimal intentionToSellBoxFeel;
    /**
     * 卖箱费
     */
    @Excel(name = "卖箱费", width = 15)
    private BigDecimal saleBoxCost;
    /**
     * 利润额
     */
    //利润额描述
    @Excel(name = "利润额 ", width = 15)
    private String profitDesc;

    private BigDecimal profit;


    @Excel(name = "备注", width = 150)
    private String remark;

    /**
     * POD堆场收费费率
     */
    private String podYardCostRate;


    /**
     * 状态
     */
    private Integer status;
    /**
     * 订单开始时间
     */
//    @Excel(name = "订单开始时间", width = 50, format = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date orderStartTime;
//    /**
//     * 应付单据号
//     */
//    @Excel(name = "应付单据号", width = 15)
//    @ApiModelProperty(value = "应付单据号")
//    private String payableId;
//    /**
//     * 应收单据号
//     */
//    @Excel(name = "应收单据号", width = 15)
//    @ApiModelProperty(value = "应收单据号")
//    private String receivablesId;

    private String boxId;


    @Excel(name = "提箱日期", width = 15, format = "yyyy-MM-dd")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "提箱日期")
    private Date takeBoxTime;

    @ApiModelProperty(value = "目的港堆场收费费率")
    private List<JzxDefaultCostDetails> jzxDefaultCostDetailsList;
    //    @ExcelCollection(name = "应收明细信息表")
    private List<CostInfo> costInfoListYs;
    //    @ExcelCollection(name = "应付明细信息表")
    private List<CostInfo> costInfoListYf;

//    /**
//     * 超期堆存费
//     */
//    private BigDecimal overdueStorageFee;
//    /**
//     * 超期堆存费币种
//     */
//    private String overdueStorageCurrency;


    private String buyBoxCostCurrency;
    private String useBoxCostCurrency;
    private String saleBoxCostCurrency;
    private String intentionToSellBoxFeelCurrency;


    //利润额描述币种
    private String profitDescCurrency;
    //堆场总费用描述费率
    private String podYardTotalCostDescCurrency;
    //利润额币种
    private String profitCurrency;

    //只有第一次是以5天去提醒，后边都是以3天为一个单位去提醒，直到系统检索到还空箱时间已填，红点就会自动消失，并且不再提醒。
    private Integer tipsDay;

}
